package GerenciadorDeEscolas;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.Random;

public class Matricula {
        private String numeroDaMatricula;
        private static List<String> matriculasUtilizadas = new ArrayList<String>();

        public Matricula() {
                numeroDaMatricula = matriculaLivre();
                matriculasUtilizadas.add(numeroDaMatricula);
        }

        private String geraNumeroDeMatricula() {
                GregorianCalendar calendario = new GregorianCalendar();
                String matricula = "";
                Random matriculaRandomica = new Random();
                matricula = String.format("%s%s%s%s", calendario.get(Calendar.YEAR),
                                calendario.get(Calendar.MONTH),
                                calendario.get(Calendar.DAY_OF_MONTH),
                                matriculaRandomica.nextInt(999));
                return matricula;
        }

        public String getNumeroDaMatricula() {
                return numeroDaMatricula;
        }

        public void setNumeroDaMatricula(String numeroDaMatricula) {
                this.numeroDaMatricula = numeroDaMatricula;
        }

        public List<String> getMatriculasUtilizadas() {
                return matriculasUtilizadas;
        }

        public void setMatriculasUtilizadas(List<String> matriculasUtilizadas) {
                this.matriculasUtilizadas = matriculasUtilizadas;
        }

        private String matriculaLivre() {
                String matriculaCandidata = geraNumeroDeMatricula();

                while (matriculasUtilizadas.contains(matriculaCandidata)) {
                        matriculaCandidata = geraNumeroDeMatricula();
                }
                return matriculaCandidata;

        }
}